package sh.orm.annotation;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * 列关联，从jpa的api复制过来。
 */
@Target({METHOD, FIELD})
@Retention(RUNTIME)
public @interface JoinColumn {
    /**
     * 关联的对象和属性，
     * 比如购物车里面的user属性，那么name就应该是"id"。
     * 表示在另外一个表中的字段
     *
     * @return
     */
    String name() default "";

    String referencedColumnName() default "";

    boolean unique() default false;

    boolean nullable() default true;

    boolean insertable() default true;

    boolean updatable() default true;

    String columnDefinition() default "";

    String table() default "";
}